# Maintainer: Daurnimator  <daurnimator@archlinux.org>
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Dwayne Bent <dbb@dbb.io>
# Contributor: Tilman Vatteroth <tilman.vatteroth@uni-dortmund.de>
# Contributor: Paul-Sebastian Manole <brokenthorn@gmail.com>
# Contributor: Timothée Ravier <tim@siosm.fr>
# Contributor: Christoph Stahl <christoph.stahl@uni-dortmund.de>

pkgname=prosody
epoch=1
pkgver=0.12.3
pkgrel=1
pkgdesc="Lightweight and extensible Jabber/XMPP server written in Lua"
arch=('loong64' 'x86_64')
url="https://prosody.im/"
license=('MIT')
depends=('lua'
         'lua-sec'
         'lua-socket'
         'lua-expat'
         'lua-filesystem'
         'libidn'
         'openssl')
optdepends=('lua-sec: TLS encryption support'
#            'lua-event: libevent support'
            'lua-dbi: SQL storage support'
            'luarocks: plugin manager')
install=prosody.install
backup=('etc/prosody/prosody.cfg.lua')
validpgpkeys=('32A9EDDE3609931EB98CEAC315907E8E7BDD6BFE'
              '3E52119EF853C59678DBBF6BADED9A77B67AD329'
              'C01A477A8F69E6E57F5C54CDE7AB958013F1F1D5')
source=("https://prosody.im/downloads/source/prosody-$pkgver.tar.gz"{,.asc}
        'prosody.tmpfile.d'
        'prosody.logrotated'
        'sysuser.conf'
        'prosody.service')
sha256sums=('35da0d031ff46040a2d638e004d4255e249b6323fe6212db9ddd76b401db2101'
            'SKIP'
            '0753bd9260f1cfdce6e18e01a61e320b396acfe9fca8ccf3250653bfa6af997e'
            '5a2466b73bd069fb73be97a4e23b24e4c8dd1adb7db871cb8f5ab4094c1f967f'
            'e5c30ffbb066f0ed3444475b3313490c535d8c9df018726f6cecf9e3ddfd2e48'
            'e9d6abc4c53bd9e7b1d2acc56c7513416751f9436bf382ed52d703d29b13bfaa')

prepare() {
  cd prosody-$pkgver

  # disable logging to output and activate syslog
  sed -i s/"info = "/"-- info = "/g prosody.cfg.lua.dist
  sed -i s/"error = "/"-- error = "/g prosody.cfg.lua.dist
  sed -i s/"--\ \"\*syslog\"\;"/"info = \"*syslog\"\;"/g prosody.cfg.lua.dist

  # add pidfile and daemonize
  # daemonize is important for systemd!
  mv prosody.cfg.lua.dist prosody.cfg.lua.old

  echo --Important for systemd >> prosody.cfg.lua.dist
  echo -- daemonize is important for systemd. if you set this to false the systemd startup will freeze. >> prosody.cfg.lua.dist
  echo daemonize = true >> prosody.cfg.lua.dist
  echo 'pidfile = "/run/prosody/prosody.pid"'>> prosody.cfg.lua.dist
  echo "" >> prosody.cfg.lua.dist
  cat prosody.cfg.lua.old >> prosody.cfg.lua.dist
  rm prosody.cfg.lua.old

  #sed -i 's|sock, err = socket.udp();|sock, err = (socket.udp4 or socket.udp)();|g' net/dns.lua
}

build() {
  cd "prosody-${pkgver}"

  ./configure \
    --ostype=linux \
    --prefix=/usr \
    --sysconfdir=/etc/prosody \
    --datadir=/var/lib/prosody \
    --idn-library=idn \
    --cflags="${CPPFLAGS} ${CFLAGS} -fPIC -D_GNU_SOURCE" \
    --ldflags="${LDFLAGS} -shared" \
    --no-example-certs
  make
}

package() {
  cd "prosody-${pkgver}"

  make DESTDIR="${pkgdir}" install
  make DESTDIR="${pkgdir}" install -C tools/migration

  install -Dm644 "${srcdir}"/prosody.tmpfile.d "${pkgdir}"/usr/lib/tmpfiles.d/prosody.conf
  install -Dm644 "${srcdir}"/prosody.service "${pkgdir}"/usr/lib/systemd/system/prosody.service
  install -Dm644 "${srcdir}"/sysuser.conf "${pkgdir}"/usr/lib/sysusers.d/prosody.conf

  for i in tools/*.lua; do
    install -Dm644 "${i}" "${pkgdir}/usr/share/prosody/${i}"
  done

  install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/prosody/COPYING
  install -Dm644 "${srcdir}"/prosody.logrotated "${pkgdir}"/etc/logrotate.d/prosody
  rm -- "${pkgdir}"/etc/prosody/certs/*
}
